{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 机器学习策略——基于SVM回归算法预测股市收益率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import tushare as ts\n",
    "import seaborn\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 数据获取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本接口即将停止更新，请尽快使用Pro版接口：https://tushare.pro/document/2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>code</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-04-08</td>\n",
       "      <td>984.66</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>1003.70</td>\n",
       "      <td>979.53</td>\n",
       "      <td>14762500.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-11</td>\n",
       "      <td>1003.88</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1008.73</td>\n",
       "      <td>992.77</td>\n",
       "      <td>15936100.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-12</td>\n",
       "      <td>993.71</td>\n",
       "      <td>978.70</td>\n",
       "      <td>993.71</td>\n",
       "      <td>978.20</td>\n",
       "      <td>10226200.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-13</td>\n",
       "      <td>987.95</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>1006.50</td>\n",
       "      <td>987.95</td>\n",
       "      <td>16071700.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-14</td>\n",
       "      <td>1004.64</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1006.42</td>\n",
       "      <td>985.58</td>\n",
       "      <td>12945700.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               open    close     high     low      volume   code\n",
       "date                                                            \n",
       "2005-04-08   984.66  1003.45  1003.70  979.53  14762500.0  hs300\n",
       "2005-04-11  1003.88   995.42  1008.73  992.77  15936100.0  hs300\n",
       "2005-04-12   993.71   978.70   993.71  978.20  10226200.0  hs300\n",
       "2005-04-13   987.95  1000.90  1006.50  987.95  16071700.0  hs300\n",
       "2005-04-14  1004.64   986.97  1006.42  985.58  12945700.0  hs300"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs300 = ts.get_k_data('hs300', '2005-01-01', '2017-06-30')\n",
    "hs300.set_index('date',inplace = True)\n",
    "hs300.index = pd.to_datetime(hs300.index)    #因为要merge操作，要把date转换成日期格式；\n",
    "hs300.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 2973 entries, 2005-04-08 to 2017-06-30\n",
      "Data columns (total 6 columns):\n",
      "open      2973 non-null float64\n",
      "close     2973 non-null float64\n",
      "high      2973 non-null float64\n",
      "low       2973 non-null float64\n",
      "volume    2973 non-null float64\n",
      "code      2973 non-null object\n",
      "dtypes: float64(5), object(1)\n",
      "memory usage: 162.6+ KB\n"
     ]
    }
   ],
   "source": [
    "hs300.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "hs300_close = hs300['close']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x12269e210>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "hs300.close.plot(figsize = (8,6),title = 'hs300', grid = True)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 特征工程\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(1, 21, 1):\n",
    "    hs300['close - ' + str(i) + 'd'] = hs300['close'].shift(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>code</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 20d</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-04-08</td>\n",
       "      <td>984.66</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>1003.70</td>\n",
       "      <td>979.53</td>\n",
       "      <td>14762500.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-11</td>\n",
       "      <td>1003.88</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1008.73</td>\n",
       "      <td>992.77</td>\n",
       "      <td>15936100.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-12</td>\n",
       "      <td>993.71</td>\n",
       "      <td>978.70</td>\n",
       "      <td>993.71</td>\n",
       "      <td>978.20</td>\n",
       "      <td>10226200.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-13</td>\n",
       "      <td>987.95</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>1006.50</td>\n",
       "      <td>987.95</td>\n",
       "      <td>16071700.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-14</td>\n",
       "      <td>1004.64</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1006.42</td>\n",
       "      <td>985.58</td>\n",
       "      <td>12945700.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-15</td>\n",
       "      <td>982.61</td>\n",
       "      <td>974.08</td>\n",
       "      <td>982.61</td>\n",
       "      <td>971.93</td>\n",
       "      <td>10409000.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-18</td>\n",
       "      <td>970.91</td>\n",
       "      <td>963.77</td>\n",
       "      <td>970.91</td>\n",
       "      <td>958.65</td>\n",
       "      <td>8598400.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-19</td>\n",
       "      <td>962.92</td>\n",
       "      <td>965.89</td>\n",
       "      <td>968.87</td>\n",
       "      <td>957.91</td>\n",
       "      <td>9212620.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-20</td>\n",
       "      <td>964.15</td>\n",
       "      <td>950.87</td>\n",
       "      <td>964.15</td>\n",
       "      <td>946.20</td>\n",
       "      <td>8850700.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-21</td>\n",
       "      <td>948.86</td>\n",
       "      <td>943.98</td>\n",
       "      <td>955.55</td>\n",
       "      <td>938.59</td>\n",
       "      <td>9946150.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-22</td>\n",
       "      <td>942.91</td>\n",
       "      <td>939.10</td>\n",
       "      <td>947.91</td>\n",
       "      <td>934.96</td>\n",
       "      <td>10691900.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-25</td>\n",
       "      <td>935.99</td>\n",
       "      <td>930.07</td>\n",
       "      <td>935.99</td>\n",
       "      <td>920.16</td>\n",
       "      <td>11470500.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>...</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-26</td>\n",
       "      <td>928.43</td>\n",
       "      <td>937.08</td>\n",
       "      <td>939.70</td>\n",
       "      <td>924.66</td>\n",
       "      <td>11690500.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>...</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-27</td>\n",
       "      <td>938.57</td>\n",
       "      <td>926.60</td>\n",
       "      <td>938.91</td>\n",
       "      <td>925.90</td>\n",
       "      <td>10780600.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>...</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-28</td>\n",
       "      <td>923.53</td>\n",
       "      <td>942.07</td>\n",
       "      <td>945.50</td>\n",
       "      <td>914.83</td>\n",
       "      <td>14343500.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>...</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-04-29</td>\n",
       "      <td>940.81</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.45</td>\n",
       "      <td>929.81</td>\n",
       "      <td>11235400.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>...</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-09</td>\n",
       "      <td>934.65</td>\n",
       "      <td>909.17</td>\n",
       "      <td>937.39</td>\n",
       "      <td>909.17</td>\n",
       "      <td>8529110.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>...</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-10</td>\n",
       "      <td>905.54</td>\n",
       "      <td>913.08</td>\n",
       "      <td>913.39</td>\n",
       "      <td>892.31</td>\n",
       "      <td>10494300.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>...</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-11</td>\n",
       "      <td>911.84</td>\n",
       "      <td>901.85</td>\n",
       "      <td>917.22</td>\n",
       "      <td>900.44</td>\n",
       "      <td>9042050.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>...</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-12</td>\n",
       "      <td>899.97</td>\n",
       "      <td>885.82</td>\n",
       "      <td>900.06</td>\n",
       "      <td>883.51</td>\n",
       "      <td>10228700.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>...</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>883.51</td>\n",
       "      <td>887.54</td>\n",
       "      <td>898.51</td>\n",
       "      <td>875.58</td>\n",
       "      <td>11244900.0</td>\n",
       "      <td>hs300</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>...</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>21 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               open    close     high     low      volume   code  close - 1d  \\\n",
       "date                                                                           \n",
       "2005-04-08   984.66  1003.45  1003.70  979.53  14762500.0  hs300         NaN   \n",
       "2005-04-11  1003.88   995.42  1008.73  992.77  15936100.0  hs300     1003.45   \n",
       "2005-04-12   993.71   978.70   993.71  978.20  10226200.0  hs300      995.42   \n",
       "2005-04-13   987.95  1000.90  1006.50  987.95  16071700.0  hs300      978.70   \n",
       "2005-04-14  1004.64   986.97  1006.42  985.58  12945700.0  hs300     1000.90   \n",
       "2005-04-15   982.61   974.08   982.61  971.93  10409000.0  hs300      986.97   \n",
       "2005-04-18   970.91   963.77   970.91  958.65   8598400.0  hs300      974.08   \n",
       "2005-04-19   962.92   965.89   968.87  957.91   9212620.0  hs300      963.77   \n",
       "2005-04-20   964.15   950.87   964.15  946.20   8850700.0  hs300      965.89   \n",
       "2005-04-21   948.86   943.98   955.55  938.59   9946150.0  hs300      950.87   \n",
       "2005-04-22   942.91   939.10   947.91  934.96  10691900.0  hs300      943.98   \n",
       "2005-04-25   935.99   930.07   935.99  920.16  11470500.0  hs300      939.10   \n",
       "2005-04-26   928.43   937.08   939.70  924.66  11690500.0  hs300      930.07   \n",
       "2005-04-27   938.57   926.60   938.91  925.90  10780600.0  hs300      937.08   \n",
       "2005-04-28   923.53   942.07   945.50  914.83  14343500.0  hs300      926.60   \n",
       "2005-04-29   940.81   932.40   942.45  929.81  11235400.0  hs300      942.07   \n",
       "2005-05-09   934.65   909.17   937.39  909.17   8529110.0  hs300      932.40   \n",
       "2005-05-10   905.54   913.08   913.39  892.31  10494300.0  hs300      909.17   \n",
       "2005-05-11   911.84   901.85   917.22  900.44   9042050.0  hs300      913.08   \n",
       "2005-05-12   899.97   885.82   900.06  883.51  10228700.0  hs300      901.85   \n",
       "2005-05-13   883.51   887.54   898.51  875.58  11244900.0  hs300      885.82   \n",
       "\n",
       "            close - 2d  close - 3d  close - 4d  ...  close - 11d  close - 12d  \\\n",
       "date                                            ...                             \n",
       "2005-04-08         NaN         NaN         NaN  ...          NaN          NaN   \n",
       "2005-04-11         NaN         NaN         NaN  ...          NaN          NaN   \n",
       "2005-04-12     1003.45         NaN         NaN  ...          NaN          NaN   \n",
       "2005-04-13      995.42     1003.45         NaN  ...          NaN          NaN   \n",
       "2005-04-14      978.70      995.42     1003.45  ...          NaN          NaN   \n",
       "2005-04-15     1000.90      978.70      995.42  ...          NaN          NaN   \n",
       "2005-04-18      986.97     1000.90      978.70  ...          NaN          NaN   \n",
       "2005-04-19      974.08      986.97     1000.90  ...          NaN          NaN   \n",
       "2005-04-20      963.77      974.08      986.97  ...          NaN          NaN   \n",
       "2005-04-21      965.89      963.77      974.08  ...          NaN          NaN   \n",
       "2005-04-22      950.87      965.89      963.77  ...          NaN          NaN   \n",
       "2005-04-25      943.98      950.87      965.89  ...      1003.45          NaN   \n",
       "2005-04-26      939.10      943.98      950.87  ...       995.42      1003.45   \n",
       "2005-04-27      930.07      939.10      943.98  ...       978.70       995.42   \n",
       "2005-04-28      937.08      930.07      939.10  ...      1000.90       978.70   \n",
       "2005-04-29      926.60      937.08      930.07  ...       986.97      1000.90   \n",
       "2005-05-09      942.07      926.60      937.08  ...       974.08       986.97   \n",
       "2005-05-10      932.40      942.07      926.60  ...       963.77       974.08   \n",
       "2005-05-11      909.17      932.40      942.07  ...       965.89       963.77   \n",
       "2005-05-12      913.08      909.17      932.40  ...       950.87       965.89   \n",
       "2005-05-13      901.85      913.08      909.17  ...       943.98       950.87   \n",
       "\n",
       "            close - 13d  close - 14d  close - 15d  close - 16d  close - 17d  \\\n",
       "date                                                                          \n",
       "2005-04-08          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-11          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-12          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-13          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-14          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-15          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-18          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-19          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-20          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-21          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-22          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-25          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-26          NaN          NaN          NaN          NaN          NaN   \n",
       "2005-04-27      1003.45          NaN          NaN          NaN          NaN   \n",
       "2005-04-28       995.42      1003.45          NaN          NaN          NaN   \n",
       "2005-04-29       978.70       995.42      1003.45          NaN          NaN   \n",
       "2005-05-09      1000.90       978.70       995.42      1003.45          NaN   \n",
       "2005-05-10       986.97      1000.90       978.70       995.42      1003.45   \n",
       "2005-05-11       974.08       986.97      1000.90       978.70       995.42   \n",
       "2005-05-12       963.77       974.08       986.97      1000.90       978.70   \n",
       "2005-05-13       965.89       963.77       974.08       986.97      1000.90   \n",
       "\n",
       "            close - 18d  close - 19d  close - 20d  \n",
       "date                                               \n",
       "2005-04-08          NaN          NaN          NaN  \n",
       "2005-04-11          NaN          NaN          NaN  \n",
       "2005-04-12          NaN          NaN          NaN  \n",
       "2005-04-13          NaN          NaN          NaN  \n",
       "2005-04-14          NaN          NaN          NaN  \n",
       "2005-04-15          NaN          NaN          NaN  \n",
       "2005-04-18          NaN          NaN          NaN  \n",
       "2005-04-19          NaN          NaN          NaN  \n",
       "2005-04-20          NaN          NaN          NaN  \n",
       "2005-04-21          NaN          NaN          NaN  \n",
       "2005-04-22          NaN          NaN          NaN  \n",
       "2005-04-25          NaN          NaN          NaN  \n",
       "2005-04-26          NaN          NaN          NaN  \n",
       "2005-04-27          NaN          NaN          NaN  \n",
       "2005-04-28          NaN          NaN          NaN  \n",
       "2005-04-29          NaN          NaN          NaN  \n",
       "2005-05-09          NaN          NaN          NaN  \n",
       "2005-05-10          NaN          NaN          NaN  \n",
       "2005-05-11      1003.45          NaN          NaN  \n",
       "2005-05-12       995.42      1003.45          NaN  \n",
       "2005-05-13       978.70       995.42      1003.45  \n",
       "\n",
       "[21 rows x 26 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs300.head(21)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "hs_20d = hs300[[x for x in hs300.columns if 'close' in x]].iloc[20:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 20d</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>...</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>...</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>...</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>883.20</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>...</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>884.17</td>\n",
       "      <td>883.20</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>...</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             close  close - 1d  close - 2d  close - 3d  close - 4d  \\\n",
       "date                                                                 \n",
       "2005-05-13  887.54      885.82      901.85      913.08      909.17   \n",
       "2005-05-16  875.27      887.54      885.82      901.85      913.08   \n",
       "2005-05-17  881.46      875.27      887.54      885.82      901.85   \n",
       "2005-05-18  883.20      881.46      875.27      887.54      885.82   \n",
       "2005-05-19  884.17      883.20      881.46      875.27      887.54   \n",
       "\n",
       "            close - 5d  close - 6d  close - 7d  close - 8d  close - 9d  ...  \\\n",
       "date                                                                    ...   \n",
       "2005-05-13      932.40      942.07      926.60      937.08      930.07  ...   \n",
       "2005-05-16      909.17      932.40      942.07      926.60      937.08  ...   \n",
       "2005-05-17      913.08      909.17      932.40      942.07      926.60  ...   \n",
       "2005-05-18      901.85      913.08      909.17      932.40      942.07  ...   \n",
       "2005-05-19      885.82      901.85      913.08      909.17      932.40  ...   \n",
       "\n",
       "            close - 11d  close - 12d  close - 13d  close - 14d  close - 15d  \\\n",
       "date                                                                          \n",
       "2005-05-13       943.98       950.87       965.89       963.77       974.08   \n",
       "2005-05-16       939.10       943.98       950.87       965.89       963.77   \n",
       "2005-05-17       930.07       939.10       943.98       950.87       965.89   \n",
       "2005-05-18       937.08       930.07       939.10       943.98       950.87   \n",
       "2005-05-19       926.60       937.08       930.07       939.10       943.98   \n",
       "\n",
       "            close - 16d  close - 17d  close - 18d  close - 19d  close - 20d  \n",
       "date                                                                         \n",
       "2005-05-13       986.97      1000.90       978.70       995.42      1003.45  \n",
       "2005-05-16       974.08       986.97      1000.90       978.70       995.42  \n",
       "2005-05-17       963.77       974.08       986.97      1000.90       978.70  \n",
       "2005-05-18       965.89       963.77       974.08       986.97      1000.90  \n",
       "2005-05-19       950.87       965.89       963.77       974.08       986.97  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs_20d.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "hs_20d = hs_20d.iloc[:,::-1]                #转换特征的顺序；"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close - 20d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2005-05-13</th>\n",
       "      <td>1003.45</td>\n",
       "      <td>995.42</td>\n",
       "      <td>978.70</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>986.97</td>\n",
       "      <td>974.08</td>\n",
       "      <td>963.77</td>\n",
       "      <td>965.89</td>\n",
       "      <td>950.87</td>\n",
       "      <td>943.98</td>\n",
       "      <td>...</td>\n",
       "      <td>930.07</td>\n",
       "      <td>937.08</td>\n",
       "      <td>926.60</td>\n",
       "      <td>942.07</td>\n",
       "      <td>932.40</td>\n",
       "      <td>909.17</td>\n",
       "      <td>913.08</td>\n",
       "      <td>901.85</td>\n",
       "      <td>885.82</td>\n",
       "      <td>887.54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005-05-16</th>\n",
       "      <td>995.42</td>\n",
       "      <td>978.70</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>986.97</td>\n",
       "      <td>974.08</td>\n",
       "      <td>963.77</td>\n",
       "      <td>965.89</td>\n",
       "      <td>950.87</td>\n",
       "      <td>943.98</td>\n",
       "      <td>939.10</td>\n",
       "      <td>...</td>\n",
       "      <td>937.08</td>\n",
       "      <td>926.60</td>\n",
       "      <td>942.07</td>\n",
       "      <td>932.40</td>\n",
       "      <td>909.17</td>\n",
       "      <td>913.08</td>\n",
       "      <td>901.85</td>\n",
       "      <td>885.82</td>\n",
       "      <td>887.54</td>\n",
       "      <td>875.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005-05-17</th>\n",
       "      <td>978.70</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>986.97</td>\n",
       "      <td>974.08</td>\n",
       "      <td>963.77</td>\n",
       "      <td>965.89</td>\n",
       "      <td>950.87</td>\n",
       "      <td>943.98</td>\n",
       "      <td>939.10</td>\n",
       "      <td>930.07</td>\n",
       "      <td>...</td>\n",
       "      <td>926.60</td>\n",
       "      <td>942.07</td>\n",
       "      <td>932.40</td>\n",
       "      <td>909.17</td>\n",
       "      <td>913.08</td>\n",
       "      <td>901.85</td>\n",
       "      <td>885.82</td>\n",
       "      <td>887.54</td>\n",
       "      <td>875.27</td>\n",
       "      <td>881.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005-05-18</th>\n",
       "      <td>1000.90</td>\n",
       "      <td>986.97</td>\n",
       "      <td>974.08</td>\n",
       "      <td>963.77</td>\n",
       "      <td>965.89</td>\n",
       "      <td>950.87</td>\n",
       "      <td>943.98</td>\n",
       "      <td>939.10</td>\n",
       "      <td>930.07</td>\n",
       "      <td>937.08</td>\n",
       "      <td>...</td>\n",
       "      <td>942.07</td>\n",
       "      <td>932.40</td>\n",
       "      <td>909.17</td>\n",
       "      <td>913.08</td>\n",
       "      <td>901.85</td>\n",
       "      <td>885.82</td>\n",
       "      <td>887.54</td>\n",
       "      <td>875.27</td>\n",
       "      <td>881.46</td>\n",
       "      <td>883.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005-05-19</th>\n",
       "      <td>986.97</td>\n",
       "      <td>974.08</td>\n",
       "      <td>963.77</td>\n",
       "      <td>965.89</td>\n",
       "      <td>950.87</td>\n",
       "      <td>943.98</td>\n",
       "      <td>939.10</td>\n",
       "      <td>930.07</td>\n",
       "      <td>937.08</td>\n",
       "      <td>926.60</td>\n",
       "      <td>...</td>\n",
       "      <td>932.40</td>\n",
       "      <td>909.17</td>\n",
       "      <td>913.08</td>\n",
       "      <td>901.85</td>\n",
       "      <td>885.82</td>\n",
       "      <td>887.54</td>\n",
       "      <td>875.27</td>\n",
       "      <td>881.46</td>\n",
       "      <td>883.20</td>\n",
       "      <td>884.17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            close - 20d  close - 19d  close - 18d  close - 17d  close - 16d  \\\n",
       "date                                                                          \n",
       "2005-05-13      1003.45       995.42       978.70      1000.90       986.97   \n",
       "2005-05-16       995.42       978.70      1000.90       986.97       974.08   \n",
       "2005-05-17       978.70      1000.90       986.97       974.08       963.77   \n",
       "2005-05-18      1000.90       986.97       974.08       963.77       965.89   \n",
       "2005-05-19       986.97       974.08       963.77       965.89       950.87   \n",
       "\n",
       "            close - 15d  close - 14d  close - 13d  close - 12d  close - 11d  \\\n",
       "date                                                                          \n",
       "2005-05-13       974.08       963.77       965.89       950.87       943.98   \n",
       "2005-05-16       963.77       965.89       950.87       943.98       939.10   \n",
       "2005-05-17       965.89       950.87       943.98       939.10       930.07   \n",
       "2005-05-18       950.87       943.98       939.10       930.07       937.08   \n",
       "2005-05-19       943.98       939.10       930.07       937.08       926.60   \n",
       "\n",
       "             ...    close - 9d  close - 8d  close - 7d  close - 6d  \\\n",
       "date         ...                                                     \n",
       "2005-05-13   ...        930.07      937.08      926.60      942.07   \n",
       "2005-05-16   ...        937.08      926.60      942.07      932.40   \n",
       "2005-05-17   ...        926.60      942.07      932.40      909.17   \n",
       "2005-05-18   ...        942.07      932.40      909.17      913.08   \n",
       "2005-05-19   ...        932.40      909.17      913.08      901.85   \n",
       "\n",
       "            close - 5d  close - 4d  close - 3d  close - 2d  close - 1d   close  \n",
       "date                                                                            \n",
       "2005-05-13      932.40      909.17      913.08      901.85      885.82  887.54  \n",
       "2005-05-16      909.17      913.08      901.85      885.82      887.54  875.27  \n",
       "2005-05-17      913.08      901.85      885.82      887.54      875.27  881.46  \n",
       "2005-05-18      901.85      885.82      887.54      875.27      881.46  883.20  \n",
       "2005-05-19      885.82      887.54      875.27      881.46      883.20  884.17  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs_20d.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 测试集表现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import svm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "clf = svm.SVR(kernel='linear')  # define SVM model assign to clf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 生成训练集和测试集 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 20d</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>...</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "      <td>1003.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>...</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "      <td>995.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>926.60</td>\n",
       "      <td>...</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "      <td>978.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>883.20</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>942.07</td>\n",
       "      <td>...</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "      <td>1000.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>884.17</td>\n",
       "      <td>883.20</td>\n",
       "      <td>881.46</td>\n",
       "      <td>875.27</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.82</td>\n",
       "      <td>901.85</td>\n",
       "      <td>913.08</td>\n",
       "      <td>909.17</td>\n",
       "      <td>932.40</td>\n",
       "      <td>...</td>\n",
       "      <td>926.60</td>\n",
       "      <td>937.08</td>\n",
       "      <td>930.07</td>\n",
       "      <td>939.10</td>\n",
       "      <td>943.98</td>\n",
       "      <td>950.87</td>\n",
       "      <td>965.89</td>\n",
       "      <td>963.77</td>\n",
       "      <td>974.08</td>\n",
       "      <td>986.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             close  close - 1d  close - 2d  close - 3d  close - 4d  \\\n",
       "date                                                                 \n",
       "2005-05-13  887.54      885.82      901.85      913.08      909.17   \n",
       "2005-05-16  875.27      887.54      885.82      901.85      913.08   \n",
       "2005-05-17  881.46      875.27      887.54      885.82      901.85   \n",
       "2005-05-18  883.20      881.46      875.27      887.54      885.82   \n",
       "2005-05-19  884.17      883.20      881.46      875.27      887.54   \n",
       "\n",
       "            close - 5d  close - 6d  close - 7d  close - 8d  close - 9d  ...  \\\n",
       "date                                                                    ...   \n",
       "2005-05-13      932.40      942.07      926.60      937.08      930.07  ...   \n",
       "2005-05-16      909.17      932.40      942.07      926.60      937.08  ...   \n",
       "2005-05-17      913.08      909.17      932.40      942.07      926.60  ...   \n",
       "2005-05-18      901.85      913.08      909.17      932.40      942.07  ...   \n",
       "2005-05-19      885.82      901.85      913.08      909.17      932.40  ...   \n",
       "\n",
       "            close - 11d  close - 12d  close - 13d  close - 14d  close - 15d  \\\n",
       "date                                                                          \n",
       "2005-05-13       943.98       950.87       965.89       963.77       974.08   \n",
       "2005-05-16       939.10       943.98       950.87       965.89       963.77   \n",
       "2005-05-17       930.07       939.10       943.98       950.87       965.89   \n",
       "2005-05-18       937.08       930.07       939.10       943.98       950.87   \n",
       "2005-05-19       926.60       937.08       930.07       939.10       943.98   \n",
       "\n",
       "            close - 16d  close - 17d  close - 18d  close - 19d  close - 20d  \n",
       "date                                                                         \n",
       "2005-05-13       986.97      1000.90       978.70       995.42      1003.45  \n",
       "2005-05-16       974.08       986.97      1000.90       978.70       995.42  \n",
       "2005-05-17       963.77       974.08       986.97      1000.90       978.70  \n",
       "2005-05-18       965.89       963.77       974.08       986.97      1000.90  \n",
       "2005-05-19       950.87       965.89       963.77       974.08       986.97  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "features_train = hs_20d[:2000]\n",
    "features_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date\n",
       "2005-05-13    875.27\n",
       "2005-05-16    881.46\n",
       "2005-05-17    883.20\n",
       "2005-05-18    884.17\n",
       "2005-05-19    882.76\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels_train = hs_20d['close'].shift(-1)[:2000]     #回归问题的标签就是预测的就是股价，下一天的收盘价就是前一天的标签；\n",
    "labels_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 20d</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2245.36</td>\n",
       "      <td>2193.02</td>\n",
       "      <td>2189.39</td>\n",
       "      <td>2175.97</td>\n",
       "      <td>2224.01</td>\n",
       "      <td>2237.68</td>\n",
       "      <td>2249.15</td>\n",
       "      <td>2265.84</td>\n",
       "      <td>2202.19</td>\n",
       "      <td>...</td>\n",
       "      <td>2245.33</td>\n",
       "      <td>2282.84</td>\n",
       "      <td>2317.85</td>\n",
       "      <td>2307.30</td>\n",
       "      <td>2275.37</td>\n",
       "      <td>2326.69</td>\n",
       "      <td>2224.06</td>\n",
       "      <td>2162.67</td>\n",
       "      <td>2163.62</td>\n",
       "      <td>2226.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2245.36</td>\n",
       "      <td>2193.02</td>\n",
       "      <td>2189.39</td>\n",
       "      <td>2175.97</td>\n",
       "      <td>2224.01</td>\n",
       "      <td>2237.68</td>\n",
       "      <td>2249.15</td>\n",
       "      <td>2265.84</td>\n",
       "      <td>...</td>\n",
       "      <td>2190.48</td>\n",
       "      <td>2245.33</td>\n",
       "      <td>2282.84</td>\n",
       "      <td>2317.85</td>\n",
       "      <td>2307.30</td>\n",
       "      <td>2275.37</td>\n",
       "      <td>2326.69</td>\n",
       "      <td>2224.06</td>\n",
       "      <td>2162.67</td>\n",
       "      <td>2163.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2245.36</td>\n",
       "      <td>2193.02</td>\n",
       "      <td>2189.39</td>\n",
       "      <td>2175.97</td>\n",
       "      <td>2224.01</td>\n",
       "      <td>2237.68</td>\n",
       "      <td>2249.15</td>\n",
       "      <td>...</td>\n",
       "      <td>2202.19</td>\n",
       "      <td>2190.48</td>\n",
       "      <td>2245.33</td>\n",
       "      <td>2282.84</td>\n",
       "      <td>2317.85</td>\n",
       "      <td>2307.30</td>\n",
       "      <td>2275.37</td>\n",
       "      <td>2326.69</td>\n",
       "      <td>2224.06</td>\n",
       "      <td>2162.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2245.36</td>\n",
       "      <td>2193.02</td>\n",
       "      <td>2189.39</td>\n",
       "      <td>2175.97</td>\n",
       "      <td>2224.01</td>\n",
       "      <td>2237.68</td>\n",
       "      <td>...</td>\n",
       "      <td>2265.84</td>\n",
       "      <td>2202.19</td>\n",
       "      <td>2190.48</td>\n",
       "      <td>2245.33</td>\n",
       "      <td>2282.84</td>\n",
       "      <td>2317.85</td>\n",
       "      <td>2307.30</td>\n",
       "      <td>2275.37</td>\n",
       "      <td>2326.69</td>\n",
       "      <td>2224.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2245.36</td>\n",
       "      <td>2193.02</td>\n",
       "      <td>2189.39</td>\n",
       "      <td>2175.97</td>\n",
       "      <td>2224.01</td>\n",
       "      <td>...</td>\n",
       "      <td>2249.15</td>\n",
       "      <td>2265.84</td>\n",
       "      <td>2202.19</td>\n",
       "      <td>2190.48</td>\n",
       "      <td>2245.33</td>\n",
       "      <td>2282.84</td>\n",
       "      <td>2317.85</td>\n",
       "      <td>2307.30</td>\n",
       "      <td>2275.37</td>\n",
       "      <td>2326.69</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              close  close - 1d  close - 2d  close - 3d  close - 4d  \\\n",
       "date                                                                  \n",
       "2013-08-02  2247.26     2245.36     2193.02     2189.39     2175.97   \n",
       "2013-08-05  2278.33     2247.26     2245.36     2193.02     2189.39   \n",
       "2013-08-06  2293.64     2278.33     2247.26     2245.36     2193.02   \n",
       "2013-08-07  2280.62     2293.64     2278.33     2247.26     2245.36   \n",
       "2013-08-08  2276.78     2280.62     2293.64     2278.33     2247.26   \n",
       "\n",
       "            close - 5d  close - 6d  close - 7d  close - 8d  close - 9d  ...  \\\n",
       "date                                                                    ...   \n",
       "2013-08-02     2224.01     2237.68     2249.15     2265.84     2202.19  ...   \n",
       "2013-08-05     2175.97     2224.01     2237.68     2249.15     2265.84  ...   \n",
       "2013-08-06     2189.39     2175.97     2224.01     2237.68     2249.15  ...   \n",
       "2013-08-07     2193.02     2189.39     2175.97     2224.01     2237.68  ...   \n",
       "2013-08-08     2245.36     2193.02     2189.39     2175.97     2224.01  ...   \n",
       "\n",
       "            close - 11d  close - 12d  close - 13d  close - 14d  close - 15d  \\\n",
       "date                                                                          \n",
       "2013-08-02      2245.33      2282.84      2317.85      2307.30      2275.37   \n",
       "2013-08-05      2190.48      2245.33      2282.84      2317.85      2307.30   \n",
       "2013-08-06      2202.19      2190.48      2245.33      2282.84      2317.85   \n",
       "2013-08-07      2265.84      2202.19      2190.48      2245.33      2282.84   \n",
       "2013-08-08      2249.15      2265.84      2202.19      2190.48      2245.33   \n",
       "\n",
       "            close - 16d  close - 17d  close - 18d  close - 19d  close - 20d  \n",
       "date                                                                         \n",
       "2013-08-02      2326.69      2224.06      2162.67      2163.62      2226.85  \n",
       "2013-08-05      2275.37      2326.69      2224.06      2162.67      2163.62  \n",
       "2013-08-06      2307.30      2275.37      2326.69      2224.06      2162.67  \n",
       "2013-08-07      2317.85      2307.30      2275.37      2326.69      2224.06  \n",
       "2013-08-08      2282.84      2317.85      2307.30      2275.37      2326.69  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "features_test = hs_20d[2000:]\n",
    "features_test.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date\n",
       "2013-08-02    2278.33\n",
       "2013-08-05    2293.64\n",
       "2013-08-06    2280.62\n",
       "2013-08-07    2276.78\n",
       "2013-08-08    2286.01\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels_test = hs_20d['close'].shift(-1)[2000:]\n",
    "labels_test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1,\n",
       "    gamma='auto_deprecated', kernel='linear', max_iter=-1, shrinking=True,\n",
       "    tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.fit(features_train, labels_train)     #模型的训练过程；"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "predict = clf.predict(features_test)      #给你测试集的特征，返回的是测试集的标签，回归问题的标签就是股价；"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2217.11072556, 2260.60406908, 2289.39561218, 2330.88600747,\n",
       "       2299.74236831, 2262.29121348, 2331.56916017, 2355.38241164,\n",
       "       2371.48914735, 2360.10020461, 2328.64521916, 2350.72028264,\n",
       "       2330.95178116, 2314.13151143, 2319.54446365, 2282.53730107,\n",
       "       2373.92162191, 2369.56131966, 2351.51962697, 2305.26468919,\n",
       "       2281.81000951, 2339.03602585, 2382.77843934, 2369.25610211,\n",
       "       2330.64279328, 2340.76798999, 2455.76898287, 2497.72621266,\n",
       "       2507.80361375, 2498.92303268, 2472.91447302, 2499.85543871,\n",
       "       2457.9757684 , 2481.2323506 , 2475.70518933, 2427.69570563,\n",
       "       2453.06728781, 2437.89409491, 2442.56065322, 2425.98510275,\n",
       "       2429.76138402, 2454.61381916, 2422.56824967, 2467.52479736,\n",
       "       2479.20118379, 2490.6844929 , 2438.0049767 , 2387.68806743,\n",
       "       2411.042584  , 2487.84871159])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict[:50]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(labels_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['predict'] = predict     #把前面预测的测试集的股价给添加到DataFrame中；\n",
    "df = df.rename(columns = {'close': 'Next Close', 'predict':'Predict Next Close'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predict Next Close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predict Next Close\n",
       "date                                      \n",
       "2013-08-02     2278.33         2217.110726\n",
       "2013-08-05     2293.64         2260.604069\n",
       "2013-08-06     2280.62         2289.395612\n",
       "2013-08-07     2276.78         2330.886007\n",
       "2013-08-08     2286.01         2299.742368"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2247.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2278.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2293.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2280.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2276.78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              close\n",
       "date               \n",
       "2013-08-02  2247.26\n",
       "2013-08-05  2278.33\n",
       "2013-08-06  2293.64\n",
       "2013-08-07  2280.62\n",
       "2013-08-08  2276.78"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "current_close = hs_20d[['close']].iloc[2000:]\n",
    "current_close.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2249.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2270.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2292.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2277.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2288.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               open\n",
       "date               \n",
       "2013-08-02  2249.98\n",
       "2013-08-05  2270.67\n",
       "2013-08-06  2292.38\n",
       "2013-08-07  2277.25\n",
       "2013-08-08  2288.51"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "next_open = hs300[['open']].iloc[2020:].shift(-1)    #把8月3号的开盘价放到了8月2号的位置；\n",
    "next_open.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predict Next Close</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "      <td>2247.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "      <td>2278.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "      <td>2293.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "      <td>2280.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "      <td>2276.78</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predict Next Close    close\n",
       "date                                               \n",
       "2013-08-02     2278.33         2217.110726  2247.26\n",
       "2013-08-05     2293.64         2260.604069  2278.33\n",
       "2013-08-06     2280.62         2289.395612  2293.64\n",
       "2013-08-07     2276.78         2330.886007  2280.62\n",
       "2013-08-08     2286.01         2299.742368  2276.78"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1 = pd.merge(df, current_close, left_index=True, right_index=True)\n",
    "df1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = pd.merge(df1, next_open, left_index=True, right_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predict Next Close</th>\n",
       "      <th>close</th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2249.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2270.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2292.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2277.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2288.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predict Next Close    close     open\n",
       "date                                                        \n",
       "2013-08-02     2278.33         2217.110726  2247.26  2249.98\n",
       "2013-08-05     2293.64         2260.604069  2278.33  2270.67\n",
       "2013-08-06     2280.62         2289.395612  2293.64  2292.38\n",
       "2013-08-07     2276.78         2330.886007  2280.62  2277.25\n",
       "2013-08-08     2286.01         2299.742368  2276.78  2288.51"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2.columns = ['Next Close', 'Predicted Next Close', 'Current Close', 'Next Open']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>Current Close</th>\n",
       "      <th>Next Open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2249.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2270.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2292.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2277.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2288.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close  Current Close  Next Open\n",
       "date                                                                  \n",
       "2013-08-02     2278.33           2217.110726        2247.26    2249.98\n",
       "2013-08-05     2293.64           2260.604069        2278.33    2270.67\n",
       "2013-08-06     2280.62           2289.395612        2293.64    2292.38\n",
       "2013-08-07     2276.78           2330.886007        2280.62    2277.25\n",
       "2013-08-08     2286.01           2299.742368        2276.78    2288.51"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 模型逻辑"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2['Signal'] = np.where(df2['Predicted Next Close'] > df2['Next Open'] + 5,1,0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.4 模型收益计算和可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2['PL'] =  np.where(df2['Signal'] == 1,(df2['Next Close'] - df2['Next Open'])/df2['Next Open'],0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>Current Close</th>\n",
       "      <th>Next Open</th>\n",
       "      <th>Signal</th>\n",
       "      <th>PL</th>\n",
       "      <th>Strategy</th>\n",
       "      <th>return</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2249.98</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2270.67</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.006720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2292.38</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.001005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2277.25</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.000206</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.999320</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2288.51</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.001092</td>\n",
       "      <td>0.999794</td>\n",
       "      <td>1.003371</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close  Current Close  Next Open  \\\n",
       "date                                                                     \n",
       "2013-08-02     2278.33           2217.110726        2247.26    2249.98   \n",
       "2013-08-05     2293.64           2260.604069        2278.33    2270.67   \n",
       "2013-08-06     2280.62           2289.395612        2293.64    2292.38   \n",
       "2013-08-07     2276.78           2330.886007        2280.62    2277.25   \n",
       "2013-08-08     2286.01           2299.742368        2276.78    2288.51   \n",
       "\n",
       "            Signal        PL  Strategy    return  \n",
       "date                                              \n",
       "2013-08-02       0  0.000000       NaN       NaN  \n",
       "2013-08-05       0  0.000000  1.000000  1.006720  \n",
       "2013-08-06       0  0.000000  1.000000  1.001005  \n",
       "2013-08-07       1 -0.000206  1.000000  0.999320  \n",
       "2013-08-08       1 -0.001092  0.999794  1.003371  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2['Strategy'] = (df2['PL'].shift(1)+1).cumprod()\n",
    "df2['return'] = (df2['Next Close'].pct_change()+1).cumprod()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>Current Close</th>\n",
       "      <th>Next Open</th>\n",
       "      <th>Signal</th>\n",
       "      <th>PL</th>\n",
       "      <th>Strategy</th>\n",
       "      <th>return</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2013-08-02</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2217.110726</td>\n",
       "      <td>2247.26</td>\n",
       "      <td>2249.98</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-05</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2260.604069</td>\n",
       "      <td>2278.33</td>\n",
       "      <td>2270.67</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.006720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-06</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2289.395612</td>\n",
       "      <td>2293.64</td>\n",
       "      <td>2292.38</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.001005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2330.886007</td>\n",
       "      <td>2280.62</td>\n",
       "      <td>2277.25</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.000206</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.999320</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2013-08-08</td>\n",
       "      <td>2286.01</td>\n",
       "      <td>2299.742368</td>\n",
       "      <td>2276.78</td>\n",
       "      <td>2288.51</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.001092</td>\n",
       "      <td>0.999794</td>\n",
       "      <td>1.003371</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close  Current Close  Next Open  \\\n",
       "date                                                                     \n",
       "2013-08-02     2278.33           2217.110726        2247.26    2249.98   \n",
       "2013-08-05     2293.64           2260.604069        2278.33    2270.67   \n",
       "2013-08-06     2280.62           2289.395612        2293.64    2292.38   \n",
       "2013-08-07     2276.78           2330.886007        2280.62    2277.25   \n",
       "2013-08-08     2286.01           2299.742368        2276.78    2288.51   \n",
       "\n",
       "            Signal        PL  Strategy    return  \n",
       "date                                              \n",
       "2013-08-02       0  0.000000       NaN       NaN  \n",
       "2013-08-05       0  0.000000  1.000000  1.006720  \n",
       "2013-08-06       0  0.000000  1.000000  1.001005  \n",
       "2013-08-07       1 -0.000206  1.000000  0.999320  \n",
       "2013-08-08       1 -0.001092  0.999794  1.003371  "
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x123ab2110>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2[['Strategy','return']].dropna().plot(figsize=(10, 6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 训练集数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "predict_train = clf.predict(features_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train = pd.DataFrame(labels_train)\n",
    "df_train['predict'] = predict_train\n",
    "df_train = df_train.rename(columns = {'close': 'Next Close', 'predict':'Predict Next Close'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predict Next Close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>875.27</td>\n",
       "      <td>892.963011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>881.46</td>\n",
       "      <td>863.716542</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>883.20</td>\n",
       "      <td>886.176840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>884.17</td>\n",
       "      <td>882.980884</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>882.76</td>\n",
       "      <td>889.767520</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predict Next Close\n",
       "date                                      \n",
       "2005-05-13      875.27          892.963011\n",
       "2005-05-16      881.46          863.716542\n",
       "2005-05-17      883.20          886.176840\n",
       "2005-05-18      884.17          882.980884\n",
       "2005-05-19      882.76          889.767520"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>887.54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>875.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>881.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>883.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>884.17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             close\n",
       "date              \n",
       "2005-05-13  887.54\n",
       "2005-05-16  875.27\n",
       "2005-05-17  881.46\n",
       "2005-05-18  883.20\n",
       "2005-05-19  884.17"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "current_close_train = hs_20d[['close']].iloc[:2000]\n",
    "current_close_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>885.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>873.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>881.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>882.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>883.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              open\n",
       "date              \n",
       "2005-05-13  885.39\n",
       "2005-05-16  873.08\n",
       "2005-05-17  881.14\n",
       "2005-05-18  882.84\n",
       "2005-05-19  883.51"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "next_open_train = hs300[['open']].iloc[20:2020].shift(-1)\n",
    "next_open_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1_train = pd.merge(df_train, current_close_train, left_index=True, right_index=True)\n",
    "df2_train = pd.merge(df1_train, next_open_train, left_index=True, right_index=True)\n",
    "df2_train.columns = ['Next Close', 'Predicted Next Close', 'Current Close', 'Next Open']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>Current Close</th>\n",
       "      <th>Next Open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2005-05-13</td>\n",
       "      <td>875.27</td>\n",
       "      <td>892.963011</td>\n",
       "      <td>887.54</td>\n",
       "      <td>885.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-16</td>\n",
       "      <td>881.46</td>\n",
       "      <td>863.716542</td>\n",
       "      <td>875.27</td>\n",
       "      <td>873.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-17</td>\n",
       "      <td>883.20</td>\n",
       "      <td>886.176840</td>\n",
       "      <td>881.46</td>\n",
       "      <td>881.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-18</td>\n",
       "      <td>884.17</td>\n",
       "      <td>882.980884</td>\n",
       "      <td>883.20</td>\n",
       "      <td>882.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2005-05-19</td>\n",
       "      <td>882.76</td>\n",
       "      <td>889.767520</td>\n",
       "      <td>884.17</td>\n",
       "      <td>883.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close  Current Close  Next Open\n",
       "date                                                                  \n",
       "2005-05-13      875.27            892.963011         887.54     885.39\n",
       "2005-05-16      881.46            863.716542         875.27     873.08\n",
       "2005-05-17      883.20            886.176840         881.46     881.14\n",
       "2005-05-18      884.17            882.980884         883.20     882.84\n",
       "2005-05-19      882.76            889.767520         884.17     883.51"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_train ['Signal'] = np.where(df2_train ['Predicted Next Close'] > df2_train ['Next Open'] + 5,1,0)\n",
    "df2_train ['PL'] =  np.where(df2_train ['Signal'] == 1,(df2_train ['Next Close'] - df2_train ['Next Open'])/df2_train ['Next Open'],0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_train['Strategy'] = (df2_train['PL'].shift(1)+1).cumprod()\n",
    "df2_train['return'] = (df2_train['Next Close'].pct_change()+1).cumprod()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x123934350>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2_train[['Strategy','return']].dropna().plot(figsize=(10, 6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. 样本外数据\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本接口即将停止更新，请尽快使用Pro版接口：https://tushare.pro/document/2\n"
     ]
    }
   ],
   "source": [
    "hs_os = ts.get_k_data('hs300', '2017-07-01','2020-08-18') #get HS300 Outside of Sample data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>code</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-03</td>\n",
       "      <td>3667.23</td>\n",
       "      <td>3650.85</td>\n",
       "      <td>3667.60</td>\n",
       "      <td>3633.78</td>\n",
       "      <td>88820860.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-07-04</td>\n",
       "      <td>3646.83</td>\n",
       "      <td>3619.98</td>\n",
       "      <td>3646.85</td>\n",
       "      <td>3611.69</td>\n",
       "      <td>95071413.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-07-05</td>\n",
       "      <td>3611.90</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3660.73</td>\n",
       "      <td>3610.46</td>\n",
       "      <td>88232425.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-07-06</td>\n",
       "      <td>3654.56</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3666.77</td>\n",
       "      <td>3629.56</td>\n",
       "      <td>102379245.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-07-07</td>\n",
       "      <td>3647.64</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3657.11</td>\n",
       "      <td>3631.87</td>\n",
       "      <td>103735497.0</td>\n",
       "      <td>hs300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               open    close     high      low       volume   code\n",
       "date                                                              \n",
       "2017-07-03  3667.23  3650.85  3667.60  3633.78   88820860.0  hs300\n",
       "2017-07-04  3646.83  3619.98  3646.85  3611.69   95071413.0  hs300\n",
       "2017-07-05  3611.90  3659.68  3660.73  3610.46   88232425.0  hs300\n",
       "2017-07-06  3654.56  3660.10  3666.77  3629.56  102379245.0  hs300\n",
       "2017-07-07  3647.64  3655.93  3657.11  3631.87  103735497.0  hs300"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs_os.set_index('date',inplace = True)\n",
    "hs_os.index = pd.to_datetime(hs_os.index)    #因为要merge操作，要把date转换成日期格式；\n",
    "hs_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x123a80610>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "hs_os_close = hs_os['close']\n",
    "hs_os_close.plot(figsize = (8,6),title = 'hs300', grid = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "#特征工程\n",
    "\n",
    "for i in range(1, 21, 1):\n",
    "    hs_os['close - ' + str(i) + 'd'] = hs_os['close'].shift(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "hs_os_20d = hs_os[[x for x in hs300.columns if 'close' in x]].iloc[20:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 20d</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>...</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3619.98</td>\n",
       "      <td>3650.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>...</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3619.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>...</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3659.68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>...</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3660.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>...</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3655.93</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              close  close - 1d  close - 2d  close - 3d  close - 4d  \\\n",
       "date                                                                  \n",
       "2017-07-31  3737.87     3721.89     3712.19     3705.39     3719.56   \n",
       "2017-08-01  3770.38     3737.87     3721.89     3712.19     3705.39   \n",
       "2017-08-02  3760.85     3770.38     3737.87     3721.89     3712.19   \n",
       "2017-08-03  3727.83     3760.85     3770.38     3737.87     3721.89   \n",
       "2017-08-04  3707.58     3727.83     3760.85     3770.38     3737.87   \n",
       "\n",
       "            close - 5d  close - 6d  close - 7d  close - 8d  close - 9d  ...  \\\n",
       "date                                                                    ...   \n",
       "2017-07-31     3743.47     3728.60     3747.88     3729.75     3667.18  ...   \n",
       "2017-08-01     3719.56     3743.47     3728.60     3747.88     3729.75  ...   \n",
       "2017-08-02     3705.39     3719.56     3743.47     3728.60     3747.88  ...   \n",
       "2017-08-03     3712.19     3705.39     3719.56     3743.47     3728.60  ...   \n",
       "2017-08-04     3721.89     3712.19     3705.39     3719.56     3743.47  ...   \n",
       "\n",
       "            close - 11d  close - 12d  close - 13d  close - 14d  close - 15d  \\\n",
       "date                                                                          \n",
       "2017-07-31      3703.09      3686.92      3658.82      3670.81      3653.69   \n",
       "2017-08-01      3663.56      3703.09      3686.92      3658.82      3670.81   \n",
       "2017-08-02      3667.18      3663.56      3703.09      3686.92      3658.82   \n",
       "2017-08-03      3729.75      3667.18      3663.56      3703.09      3686.92   \n",
       "2017-08-04      3747.88      3729.75      3667.18      3663.56      3703.09   \n",
       "\n",
       "            close - 16d  close - 17d  close - 18d  close - 19d  close - 20d  \n",
       "date                                                                         \n",
       "2017-07-31      3655.93      3660.10      3659.68      3619.98      3650.85  \n",
       "2017-08-01      3653.69      3655.93      3660.10      3659.68      3619.98  \n",
       "2017-08-02      3670.81      3653.69      3655.93      3660.10      3659.68  \n",
       "2017-08-03      3658.82      3670.81      3653.69      3655.93      3660.10  \n",
       "2017-08-04      3686.92      3658.82      3670.81      3653.69      3655.93  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs_os_20d.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "hs_os_20d = hs_os_20d.iloc[:,::-1] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close - 20d</th>\n",
       "      <th>close - 19d</th>\n",
       "      <th>close - 18d</th>\n",
       "      <th>close - 17d</th>\n",
       "      <th>close - 16d</th>\n",
       "      <th>close - 15d</th>\n",
       "      <th>close - 14d</th>\n",
       "      <th>close - 13d</th>\n",
       "      <th>close - 12d</th>\n",
       "      <th>close - 11d</th>\n",
       "      <th>...</th>\n",
       "      <th>close - 9d</th>\n",
       "      <th>close - 8d</th>\n",
       "      <th>close - 7d</th>\n",
       "      <th>close - 6d</th>\n",
       "      <th>close - 5d</th>\n",
       "      <th>close - 4d</th>\n",
       "      <th>close - 3d</th>\n",
       "      <th>close - 2d</th>\n",
       "      <th>close - 1d</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3650.85</td>\n",
       "      <td>3619.98</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>...</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3737.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3619.98</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>...</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3770.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3659.68</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>...</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3760.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3660.10</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>...</td>\n",
       "      <td>3728.60</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3727.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3655.93</td>\n",
       "      <td>3653.69</td>\n",
       "      <td>3670.81</td>\n",
       "      <td>3658.82</td>\n",
       "      <td>3686.92</td>\n",
       "      <td>3703.09</td>\n",
       "      <td>3663.56</td>\n",
       "      <td>3667.18</td>\n",
       "      <td>3729.75</td>\n",
       "      <td>3747.88</td>\n",
       "      <td>...</td>\n",
       "      <td>3743.47</td>\n",
       "      <td>3719.56</td>\n",
       "      <td>3705.39</td>\n",
       "      <td>3712.19</td>\n",
       "      <td>3721.89</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3707.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            close - 20d  close - 19d  close - 18d  close - 17d  close - 16d  \\\n",
       "date                                                                          \n",
       "2017-07-31      3650.85      3619.98      3659.68      3660.10      3655.93   \n",
       "2017-08-01      3619.98      3659.68      3660.10      3655.93      3653.69   \n",
       "2017-08-02      3659.68      3660.10      3655.93      3653.69      3670.81   \n",
       "2017-08-03      3660.10      3655.93      3653.69      3670.81      3658.82   \n",
       "2017-08-04      3655.93      3653.69      3670.81      3658.82      3686.92   \n",
       "\n",
       "            close - 15d  close - 14d  close - 13d  close - 12d  close - 11d  \\\n",
       "date                                                                          \n",
       "2017-07-31      3653.69      3670.81      3658.82      3686.92      3703.09   \n",
       "2017-08-01      3670.81      3658.82      3686.92      3703.09      3663.56   \n",
       "2017-08-02      3658.82      3686.92      3703.09      3663.56      3667.18   \n",
       "2017-08-03      3686.92      3703.09      3663.56      3667.18      3729.75   \n",
       "2017-08-04      3703.09      3663.56      3667.18      3729.75      3747.88   \n",
       "\n",
       "            ...  close - 9d  close - 8d  close - 7d  close - 6d  close - 5d  \\\n",
       "date        ...                                                               \n",
       "2017-07-31  ...     3667.18     3729.75     3747.88     3728.60     3743.47   \n",
       "2017-08-01  ...     3729.75     3747.88     3728.60     3743.47     3719.56   \n",
       "2017-08-02  ...     3747.88     3728.60     3743.47     3719.56     3705.39   \n",
       "2017-08-03  ...     3728.60     3743.47     3719.56     3705.39     3712.19   \n",
       "2017-08-04  ...     3743.47     3719.56     3705.39     3712.19     3721.89   \n",
       "\n",
       "            close - 4d  close - 3d  close - 2d  close - 1d    close  \n",
       "date                                                                 \n",
       "2017-07-31     3719.56     3705.39     3712.19     3721.89  3737.87  \n",
       "2017-08-01     3705.39     3712.19     3721.89     3737.87  3770.38  \n",
       "2017-08-02     3712.19     3721.89     3737.87     3770.38  3760.85  \n",
       "2017-08-03     3721.89     3737.87     3770.38     3760.85  3727.83  \n",
       "2017-08-04     3737.87     3770.38     3760.85     3727.83  3707.58  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hs_os_20d.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "features_test_os = hs_os_20d\n",
    "labels_test_os = hs_os_20d['close'].shift(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3647.51044103, 3618.34000435, 3675.12328299, 3668.17749616,\n",
       "       3678.02342262, 3679.28964227, 3700.86515474, 3670.52081176,\n",
       "       3677.2408089 , 3688.58737301, 3689.31072619, 3732.5857127 ,\n",
       "       3751.70674884, 3757.48830333, 3710.29654622, 3760.94694414,\n",
       "       3768.06855318, 3745.61809605, 3723.44210231, 3720.30432415])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_os = clf.predict(features_test_os) \n",
    "predict_os[:20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_os = pd.DataFrame(labels_test_os)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-08-11</td>\n",
       "      <td>4647.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-08-12</td>\n",
       "      <td>4635.71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-08-13</td>\n",
       "      <td>4704.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-08-14</td>\n",
       "      <td>4815.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-08-17</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>743 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              close\n",
       "date               \n",
       "2017-07-31  3770.38\n",
       "2017-08-01  3760.85\n",
       "2017-08-02  3727.83\n",
       "2017-08-03  3707.58\n",
       "2017-08-04  3726.79\n",
       "...             ...\n",
       "2020-08-11  4647.64\n",
       "2020-08-12  4635.71\n",
       "2020-08-13  4704.63\n",
       "2020-08-14  4815.23\n",
       "2020-08-17      NaN\n",
       "\n",
       "[743 rows x 1 columns]"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_os['predict'] = predict_os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>predict</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3647.510441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3618.340004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3675.123283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3668.177496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "      <td>3678.023423</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              close      predict\n",
       "date                            \n",
       "2017-07-31  3770.38  3647.510441\n",
       "2017-08-01  3760.85  3618.340004\n",
       "2017-08-02  3727.83  3675.123283\n",
       "2017-08-03  3707.58  3668.177496\n",
       "2017-08-04  3726.79  3678.023423"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_os = df_os.rename(columns = {'close': 'Next Close', 'predict':'Predicted Next Close'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3647.510441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3618.340004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3675.123283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3668.177496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "      <td>3678.023423</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close\n",
       "date                                        \n",
       "2017-07-31     3770.38           3647.510441\n",
       "2017-08-01     3760.85           3618.340004\n",
       "2017-08-02     3727.83           3675.123283\n",
       "2017-08-03     3707.58           3668.177496\n",
       "2017-08-04     3726.79           3678.023423"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3737.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3770.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3760.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3727.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3707.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              close\n",
       "date               \n",
       "2017-07-31  3737.87\n",
       "2017-08-01  3770.38\n",
       "2017-08-02  3760.85\n",
       "2017-08-03  3727.83\n",
       "2017-08-04  3707.58"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "current_close = hs_os_20d[['close']]\n",
    "current_close.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3738.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3768.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3755.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3724.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3701.22</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               open\n",
       "date               \n",
       "2017-07-31  3738.74\n",
       "2017-08-01  3768.19\n",
       "2017-08-02  3755.11\n",
       "2017-08-03  3724.72\n",
       "2017-08-04  3701.22"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "next_open = hs_os[['open']][20:].shift(-1)    #把8月3号的开盘价放到了8月2号的位置；\n",
    "next_open.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3647.510441</td>\n",
       "      <td>3737.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3618.340004</td>\n",
       "      <td>3770.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3675.123283</td>\n",
       "      <td>3760.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3668.177496</td>\n",
       "      <td>3727.83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "      <td>3678.023423</td>\n",
       "      <td>3707.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close    close\n",
       "date                                                 \n",
       "2017-07-31     3770.38           3647.510441  3737.87\n",
       "2017-08-01     3760.85           3618.340004  3770.38\n",
       "2017-08-02     3727.83           3675.123283  3760.85\n",
       "2017-08-03     3707.58           3668.177496  3727.83\n",
       "2017-08-04     3726.79           3678.023423  3707.58"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1_os = pd.merge(df_os, current_close, left_index=True, right_index=True)\n",
    "df1_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_os = pd.merge(df1_os, next_open, left_index=True, right_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>close</th>\n",
       "      <th>open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3647.510441</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3738.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3618.340004</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3768.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3675.123283</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3755.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3668.177496</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3724.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "      <td>3678.023423</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3701.22</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close    close     open\n",
       "date                                                          \n",
       "2017-07-31     3770.38           3647.510441  3737.87  3738.74\n",
       "2017-08-01     3760.85           3618.340004  3770.38  3768.19\n",
       "2017-08-02     3727.83           3675.123283  3760.85  3755.11\n",
       "2017-08-03     3707.58           3668.177496  3727.83  3724.72\n",
       "2017-08-04     3726.79           3678.023423  3707.58  3701.22"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_os.columns = ['Next Close', 'Predicted Next Close', 'Current Close', 'Next Open']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Next Close</th>\n",
       "      <th>Predicted Next Close</th>\n",
       "      <th>Current Close</th>\n",
       "      <th>Next Open</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-07-31</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3647.510441</td>\n",
       "      <td>3737.87</td>\n",
       "      <td>3738.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-01</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3618.340004</td>\n",
       "      <td>3770.38</td>\n",
       "      <td>3768.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-02</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3675.123283</td>\n",
       "      <td>3760.85</td>\n",
       "      <td>3755.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-03</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3668.177496</td>\n",
       "      <td>3727.83</td>\n",
       "      <td>3724.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-08-04</td>\n",
       "      <td>3726.79</td>\n",
       "      <td>3678.023423</td>\n",
       "      <td>3707.58</td>\n",
       "      <td>3701.22</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Next Close  Predicted Next Close  Current Close  Next Open\n",
       "date                                                                  \n",
       "2017-07-31     3770.38           3647.510441        3737.87    3738.74\n",
       "2017-08-01     3760.85           3618.340004        3770.38    3768.19\n",
       "2017-08-02     3727.83           3675.123283        3760.85    3755.11\n",
       "2017-08-03     3707.58           3668.177496        3727.83    3724.72\n",
       "2017-08-04     3726.79           3678.023423        3707.58    3701.22"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2_os.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_os['Signal'] = np.where(df2_os['Predicted Next Close'] > df2_os['Next Open'] + 5,1,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_os['PL'] =  np.where(df2_os['Signal'] == 1,(df2_os['Next Close'] - df2_os['Next Open'])/df2_os['Next Open'],0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "df2_os['Strategy'] = (df2_os['PL'].shift(1)+1).cumprod()\n",
    "df2_os['return'] = (df2_os['Next Close'].pct_change()+1).cumprod()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x125001b90>"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2_os[['Strategy','return']].dropna().plot(figsize=(10, 6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Strategy outside of sample performed slightly better than the index, \n",
    "and it seems unable to catch the major trend in early 2019 and 2020"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
